package org.xp.judgeplatform.service;

import org.xp.judgeplatform.common.PageResult;
import org.xp.judgeplatform.pojo.dto.ProblemDTO.ProblemCreateDTO;
import org.xp.judgeplatform.pojo.dto.ProblemDTO.ProblemQueryDTO;
import org.xp.judgeplatform.pojo.dto.ProblemDTO.ProblemUpdateDTO;
import org.xp.judgeplatform.pojo.vo.ProblemVO.ProblemVO;

public interface ProblemService {
    // 原有方法（保持兼容性）
    ProblemVO getProblemById(Long id);
    
    // 用户和公开查询方法
    PageResult<ProblemVO> getProblemsForUser(ProblemQueryDTO problemQueryDTO);
    PageResult<ProblemVO> getProblemsForPublic(ProblemQueryDTO problemQueryDTO);
    
    // 管理员方法
    ProblemVO createProblem(ProblemCreateDTO createDTO, Integer userId);
    ProblemVO updateProblem(Long id, ProblemUpdateDTO updateDTO);
    void deleteProblem(Long id);
    PageResult<ProblemVO> getProblemsForAdmin(ProblemQueryDTO problemQueryDTO);
}
